1. Field of the Invention
The present invention generally relates to data management. More particularly, the present invention relates to managing annotations stored for a one version of a data source and making the annotations available to other versions of the data source.
2. Description of the Related Art
There are well-known methods for capturing and storing explicit knowledge as data using a computer system. Common methods for storing data include databases, word-processor documents, text files, spread-sheets, and many other formats for storing and retrieving data. Oftentimes, such data is analyzed by various individuals (e.g., experts, technicians, managers, researchers, etc.), resulting in rich interpretive information referred to as tacit knowledge.
Generally, tacit knowledge is knowledge that is not made explicit. It may be highly personal, is oftentimes very transient, and usually requires joint, shared activities to be transmitted. Examples of tacit knowledge include subjective insights, intuitions, facts learned from conversational exchanges, and hunches. Despite its highly valuable quality, tacit knowledge is often only temporarily captured, for example, as cryptic notes in a lab notebook, discussions, conversations, instant messaging exchanges, e-mails messages, and other transient communications. Thus, because it is typically not captured systematically, tacit knowledge is often lost.
One approach to capture tacit knowledge is to create annotations about explicit data. Virtually any identifiable type of data appearing in a data source may be annotated, including, a matrix of data such as a spreadsheet or database table, a text document, an image, or multi-media data. Further, sub-portions of objects (sub-objects) may be annotated, for example, an individual cell, row or column in a database table or a page, section, paragraph or word in a text document.
An annotation system stores descriptive information about objects, or parts of objects, without modifying the objects directly. An annotation store, typically a database, stores descriptive information for an annotation, and an indexing scheme maps each annotation to the object, or position within the object. An advanced annotation system, such as the one described in a commonly owned, co-pending application entitled “Universal Annotation Management System” U.S. Ser. No. 10/600,382 stores annotations separately from the corresponding data object and associates the annotations with an identifier that is location-independent. That is, the identifier does not depend on the location of a data source in a file system hierarchy or existence in a given database. Typically this identifier is derived from the document contents rather than from location artifacts such as filename, path, URL, etc.
Problems arise, however, when the contents of an annotated data source are changed. Oftentimes, the annotation created for the unmodified document is still useful for the modified document. For example, where a group of individuals collaborates on the contents of a data source, or where the modifications introduce additional content, and do not disturb the content that was originally annotated, the annotations should be carried forward to subsequent versions of the data source. The annotations, however, may refer only to the original data source, and not the modified version. Hence, annotations may become orphaned when an original document is modified.
One current method to prevent annotations from being orphaned involves storing the annotations directly within the document containing the annotated data. This solution, however, is not always possible, and more importantly, limits collaboration since a user who desires to view annotations must ensure that they are looking at the latest version of a document.
Another solution involves using a document management system to record and maintain associations between versions of a data source. The annotation system is configured to lookup annotations in other versions of a data source based on the version hierarchy stored by the document management system. The main drawback to this approach is that it imposes the strict use of a document management system which requires users to formally check-in and check-out documents, and also imposes other heavy processes that consume system resources.
Accordingly, there remains a need for techniques to provide an annotation system that manages annotations created for different versions of a data source that do not depend on storing the annotations with the data source. Such techniques should also lack the complexity and requirements imposed by a complex document management system.